翻訳と辞書
Words near each other
・ Service Canada Centres for Youth
・ Service capability interaction manager
・ Service catalog
・ Service central de la sécurité des systèmes d'informations
・ Service chain optimization
・ Service Children's Education
・ Service choreography
・ Service Civil International
・ Service class people
・ Service climate
・ Service club
・ Service Component Architecture
・ Service composability principle
・ Service contour
・ Service contract
Service Control Manager
・ Service control point
・ Service Coordination
・ Service Corporation International
・ Service Corporation of America
・ Service Credit Union
・ Service Creek, Oregon
・ Service D
・ Service d'Action Civique
・ Service d'adresse mondial
・ Service d'exploitation de la formation aéronautique
・ Service d'Intelligence National
・ Service d'ordre légionnaire
・ Service Data Objects
・ Service data point


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Service Control Manager : ウィキペディア英語版
Service Control Manager
Service Control Manager (SCM) is a special system process under the Windows NT family of operating systems, which starts, stops and interacts with Windows service processes. It is located in the %SystemRoot%\System32\services.exe executable. Service processes interact with SCM through a well-defined API, and the same API is used internally by the interactive Windows service management tools such as the MMC snap-in Services.msc and the command-line Service Control utility sc.exe.
==Implementation==
The SCM executable, Services.exe, runs as a Windows console program and is launched by the Wininit process early during the system startup. Its main function, SvcCtrlMain(), launches all the services configured for automatic startup. First an internal database of installed services is initialized by reading the following two registry keys:
* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\List, containing the names and order of service groups. Each service's registry key contains an optional Group value which governs the order of initialization of a respective service or a device driver, with respect to other service groups.
* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, which contains the actual database of services and device drivers and is read into SCM's internal database.〔(【引用サイトリンク】title=Database of Installed Services )〕 SCM reads every service's Group value as well as load-order dependencies from their DependOnGroup and DependOnService registry keys.
In the next step, SCM's main function SvcCtrlMain() calls the function ScGetBootAndSystemDriverState() function which checks whether the device drivers that should be started during the boot or system startup were successfully loaded, and those that have failed to do so are stored in a list called ScFailedDrivers. Then a named pipe \Pipe\Ntsvcs is created as a remote procedure call interface between the SCM and the SCPs (Service Control Processes) that interact with specific services.
Next, it calls the ScAutoStartServices() function which loops through all the services marked as auto-start, paying attention to the calculated load-order dependencies. In case of a circular dependency an error is noted and the service depending on a service that belongs to a group coming later in the load order is skipped. For delayed auto-start services, grouping has no effect, and those are loaded at a later stage of system startup.
For each service it wants to start, the SCM calls the ScStartService() function which checks the name of the file that runs the service's process, ensuring that the account specified for the service is same as the account that the service process runs in. Every service that does not run in the System account is logged in by calling the LSASS function (LogonUserEx() ), for which LSASS process looks up "secret" passwords stored in the HKLM\SECURITY\Policy\Secrets\ registry key, which were stored by the SCP using the (LsaStorePrivateData() ) API, when the service was originally configured.
Next, the ScLogonAndStartImage() function is called for every service whose service process has not been already launched. Service processes are created in a suspended state via the (CreateProcessAsUser() ) API. Before the service process' execution is resumed, a named pipe \Pipe\Net\NtControlPipeX (where X is a number incremented for each service iteration) is created which serves as a communication channel between the SCM and the service process. Service process connects to the pipe by calling the (StartServiceCtrlDispatcher() ) function, after which the SCM sends the service a "start" command.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Service Control Manager」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.